TimesTenデータ・ストアには、データソース名(DSN)を使用してアクセスします。DSNは、TimesTenデータ・ストアを識別する名前(文字列)で、データ・ストアへの接続時に使用する接続属性の集まりです。Windowsの場合、データ・ストアへのアクセスに使用するODBCドライバもDSNで指定します。
データ・ストアは、各DSNによって一意に識別されます。ただし、1つのデータ・ストアを複数のDSNで参照することができます。これらの各DSNによって、異なる接続属性の集まりを指定できます。これによって、1つのデータ・ストアの様々な接続構成に対してわかりやすい名前を付けることができます。
注意: | ODBC標準に従うと、ある属性が接続文字列内に複数回出現する場合、指定されている最初の値が使用され、後続値は使用されません。 |
DSNには次の特性があります。
この項の後半の内容は次のとおりです。
DSNは、ユーザーDSNおよびシステムDSNで構成される2層のネーミング規則を使用して解決されます。
$HOME/.odbc.ini
ファイルまたはODBCINI環境変数に指定したファイルで定義します。このファイルは、「ユーザーODBC.INIファイル」と呼ばれます。ユーザーDSNは、作成したユーザーのみが使用できますが、使用を制限されるのはDSN(文字列名およびその属性)のみです。基礎となるデータ・ストアは、他のユーザーのユーザーDSNまたはシステムDSNで参照できます。root
ユーザーによってインストールされた場合は/var/TimesTen/sys.odbc.ini
ファイル、TimesTenがroot以外のユーザーによってインストールされた場合はinstall_dir/info/sys.odbc
で定義します。このファイルは、「システムODBC.INIファイル」と呼ばれます。特定のDSNを検索する場合、TimesTenは、指定した名前を持つユーザーDSNを最初に検索します。一致するユーザーDSNが検出されない場合は、指定した名前を持つシステムDSNを検索します。同じ名前を持つユーザーDSNとシステムDSNが存在する場合は、ユーザーDSNを使用します。UNIXでは、同じODBC.INIファイルに同じ名前を持つ複数のDSNがある場合、TimesTenは、最初のDSNを使用します。
TimesTen Data Manager(本番バージョンまたはデバッグ・バージョンのいずれか)を使用するDSNは「Data Manager DSN」、TimesTen Clientを使用するDSNは「クライアントDSN」と呼ばれます。
Data Manager DSNは、データ・ストアへのダイレクト・ドライバ接続を定義します。Data Manager DSNは、パス名を使用してデータ・ストアを参照します。データ・ストアのパス名はデータ・ストアの場所を指定するパス名です。たとえば、C:\data\chns\AdminDS
、/home/chns/AdminDS
などです。この名前はファイル名ではありません。データ・ストアが使用する実際のファイルには接尾辞が付きます。たとえば、C:\data\chns\AdminDS.ds0
、/home/chns/AdminDS.log2
などです。指定したTimesTenデータ・ストアを参照するData Manager DSNは、データ・ストアが存在するシステムと同じシステムで定義する必要があります。また、TimesTenによって、各データ・ストアにdsName.res
nファイルが作成されます。これらのファイルは、TimesTenでログを作成する場合に内部で使用されます。
注意: | 同じデータ・ストアを複数のData Manager DSNで参照している場合、他のいくつかのパス名で同じ場所が識別されていても、同じデータ・ストアのパス名を使用する必要があります。たとえば、1つのDSNでデータ・ストアを参照するシンボリック・リンクを使用し、別のDSNで実際のパス名を使用することはできません。Windowsの場合、マップしたドライブ文字はデータ・ストアのパス名に指定できません。 |
クライアントDSNは、ホスト名/DSNのペアを使用して間接的にTimesTenデータ・ストアを参照します。この場合、ホスト名はTimesTen Serverデーモンが稼働しているマシンを表し、DSNはこのホストに定義されているシステムDSNを表します。このホストを「サーバー・マシン」、DSNを「サーバーDSN」と呼びます。
UNIXの場合、特定のユーザーが作成したすべてのユーザーDSN(クライアントDSNまたはData Manager DSN、あるいはその両方)は、同じユーザーODBC.INIファイルで定義されます。同様に、すべてのシステムDSNは同じシステムODBC.INIファイルで定義されます。
次の表に、TimesTenでサポートされているDSNタイプ、ユーザーDSNとシステムDSNのいずれを作成するか、およびDSNの場所を示します。
DSNタイプ
|
ユーザーDSNかシステムDSNか
|
DSNの場所
|
---|---|---|
Data Manager DSN | ユーザーDSNまたはシステムDSN | データ・ストアが存在するマシン上 |
クライアントDSN | ユーザーDSNまたはシステムDSN | ローカル・マシンまたはリモート・マシン上 |
サーバーDSN | 常にシステムDSN | データ・ストアが存在するマシン上 |
この章の後半では、Data Manager DSNおよびData Manager DSNに対して定義可能な接続属性について説明します。クライアントDSNおよびサーバーDSNの詳細は、「TimesTen ClientおよびTimesTen Serverの使用方法」を参照してください。
TimesTen Data Managerの属性には次の4つのタイプがあります。
注意: | TimesTen Client ODBCドライバで使用可能な接続属性については、「TimesTen ClientおよびTimesTen Serverの使用方法」を参照してください。 |
各属性の詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』のデータ・ストア属性に関する説明を参照してください。
Windowsの場合、「ODBC データソース アドミニストレータ」でデータ・ストア属性を指定します。
UNIXの場合、ODBC.INIファイルでデータ・ストア属性を指定します。ODBC.INIファイルに指定されていない属性に対しては、デフォルト値が使用されます。
TimesTenでは、データ・ストアへのマルチスレッド・アプリケーション・アクセスがサポートされています。データ・ストアに接続すると、すべてのスレッドで、この接続に対する処理を発行できます。
通常、スレッドは、スレッド固有の接続に対して処理を発行します。したがって、他のすべてのスレッドでは別のトランザクションが存在します。スレッドの作成および削除が頻繁に行われる環境では、接続をプールにまとめて保持することでパフォーマンスを向上できます。スレッドは、必要に応じてこのプールから接続を割り当てて、接続および切断によるオーバーヘッドを回避できます。
TimesTenでは、複数のスレッドで同じ接続に対してリクエストを発行できるため、トランザクションにリクエストが混在します。これらのリクエストは、TimesTenによってシリアライズされます。ただし、アプリケーションによっては、独自のシリアライズが必要な場合があります。
また、TimesTenは、1つのスレッドで複数の接続にリクエストを出したり、同一のデータ・ストアまたは異なるデータ・ストアに対して、複数の個別トランザクションおよび同時トランザクションを制御することができます。